package com.LeeCode;

/**
 * 字符串转换后的长度 I
 */

public class Code3335 {
    public static void main(String[] args) {
        String s = "abcyy";
        int t = 2;
        System.out.println(new Code3335().lengthAfterTransformations(s, t));

    }

    public int lengthAfterTransformations(String s, int t) {
        long[] cnt = new long[26]; // 用 long 防止溢出
        long count = s.length();
        final int MOD = 1000000007;

        for (char c : s.toCharArray()) {
            cnt[c - 'a']++;
        }

        for (int i = 0; i < t; i++) {
            long z = cnt[25];
            // 右移字母
            for (int index = 25; index > 0; index--) {
                cnt[index] = cnt[index - 1];
            }
            cnt[0] = z; // 'z' → 'a'
            cnt[1] = (cnt[1] + z) % MOD; // 额外增加 'b'，并取模防止溢出

            count = (count + z) % MOD; // 总字符数增加 z（'z' → 'a' + 'b'，净增 1）
        }

        return (int) count;
    }
}
